package br.com.ava.core.infra;

import java.io.Serializable;
import java.util.Collection;
import java.util.Collections;
import java.util.List;

/**
 * Classe para convers�o segura de lista raw (sem generics) em lista tipada.
 */
@SuppressWarnings({ "unchecked", "serial", "rawtypes" })
public class ColecaoChecada implements Serializable {

	/**
	 * Recupera a lista informada com checagem de tipo.
	 * 
	 * @param <T>
	 *            Tipo dos �tens contidos na lista.
	 * @param Lista
	 *            raw a ser checada.
	 * @param classe
	 *            Classe dos itens da lista.
	 * @return Lista checada.
	 */
	public static <T> List<T> checkedList(List lista, Class<T> classe) {
		return Collections.checkedList(lista, classe);
	}

	/**
	 * Recupera a lista informada com checagem de tipo.
	 * 
	 * @param <T>
	 *            Tipo dos �tens contidos na lista.
	 * @param Cole
	 *            ��o raw a ser checada
	 * @param classe
	 *            classe dos itens da {@link Collection}
	 * @return Classe dos itens da cole��o.
	 */
	public static <T> Collection<T> checkedCollection(Collection colecao,
			Class<T> classe) {
		return Collections.checkedCollection(colecao, classe);
	}
}